/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ecom.ejb;

import ecom.entity.AccountRemote;
import ecom.entity.CommandeRemote;
import ecom.entity.LigneRemote;
import ecom.entity.ProductRemote;
import exceptions.CartException;
import java.util.Set;

/**
 *
 * @author François
 */
public interface CartLocal {

    public enum StatutCart {
	/**
	 * Vide.
	 */
	EMPTY,
	/**
	 * En cours de remplissage.
	 */
	FILLING,
	/**
	 * Acheté.
	 */
	BOUGHT;
    }

    void addProduit(ProductRemote product, int quantite) throws CartException;

    void removeProduit(ProductRemote product, int quantite)
	    throws CartException;

    void cancel();

    CommandeRemote buy(AccountRemote compte) throws CartException;

    Set<LigneRemote> getProduits();

    double getMontant();

    StatutCart getStatut();

    void setStatut(StatutCart statut);
}
